來架個網站吧
需求訪談完成之後就是開始動工啦~
已目前的經驗來說,在需求訪談與分析階段,技術能不能達到要求都不是重點,本身的重點是技術如何滿足需求。以目前大部分公司的開發階段會切成以下類別:
在網站工程中,常常聽到「前端」與「後端」,但是什麼是前端?什麼是後端?
以我自己本身的經驗,對一般人比較能理解的說法是:用瀏覽器開一個網站,眼睛看得到絕大部分都是前端技術,眼睛看不到的都是後端技術。但是在時務經驗中,前端技術也可以寫後端,例如:Note.js。後端技術也可以應用在瀏覽器,例如:Java Applet。原則上技術本質是中性的,沒有絕對只有適合而已。在工作中,後端工程師也會需要處理前端丟過來的問題,進而協助前端如何處理資料傳輸的問題。前端也會需要如何用JavaScript產生文件的時後。在網站領域做了一段時間,兩端多少都需要碰到,只是早晚問題。
這一系列開始,我會介紹程式基礎。程式語言基礎的部份,我選擇JAVA。沒有其他原因,就我自己比較熟悉而已。接下來會介紹資料資料庫,以及如何操作。整體後端大略介紹完後,不會開始介紹前端基礎技術HTML、CSS、JavaScript,因為我真的不懂。
前端領域在我剛開始進入這個領域時只需要下列技能:
現在除了要會切版之外,還要學會如何接API、做OAuth 2.0......等等,幾乎快跟五年前的後端處理的事情融合了,只能說資訊技術前進的很快。當然在這塊領域上我也只能follow大致上的方向,畢竟時間與經歷有限。所以無法帶給大家深廣的資訊。
後端的領域中,不外乎是處理業務邏輯為主,當然偶爾處理一下古老前後端不分離的技術框架,例如:JSP。
10幾年前,剛接觸資訊領域時當時是以JEE框架為主流,也就是良葛格當時的主力作品:Servlet/JSP,然而在五年前踏入這個行業時,Spring則是當時火紅的技術框架,當時的所有的技術論壇真的是春天滿天飛呀~
資料庫規劃開發也是在網站應用系統功能中,佔重要比重很高的一向技術。因為每個網站近乎一定有資料庫運作。在這個領域我認為是最難處理的一部分,因為沒有什麼好或不好的資料設計。
為什麼這樣說?
以規劃主鍵
來說:雙主鍵
很適合做報表產製為目的的設計,因為後續撈報表很容易知道這張資料表的要紀錄的業務主要資訊。流水主鍵
設計很適合做物件導向李的資料,一筆資料代表一個物件。
另外,還要依需求資料與硬體規劃等設計合適的資料型態、索引、table space、資料表分頁、資料庫分庫。
在資料庫的運作上也得考慮要做或能不能做高可用性(high availability)。
這邊講的虛擬是指作業系統安裝在虛擬環境中,如: VMWare。容器,例如: docker。
在網站系統當中,通常會直接採用虛擬化服務,因為可以靈活配置系統運算效能。在網站應用程式伺服器通常會配置在容器中,容器有比虛擬機更靈活的水平擴展能力,建立一容器服務可以在短短的幾秒鐘完成服務部屬。
開發完成之後,一定要做測試而且最好是單元測試
。
大部分的人一定會跟你說:「要做單元測試。」就好比參加只考時考試券寫完要做檢查一樣(話說指考好像沒了)。但現實是,開發完成之後,通常隔天系統就要交付給客戶測試啦~
台灣?的環境使然,雖然現在無法做、明天還是無法做。
只要提倡再久一點,讓名為「滿天窗的系統bug」的子彈再飛一會兒或許客戶就會重視,騰出專案時間與預算來做。